package com.xzzz.common.wechat.enums;

/**
 * 微信响应码进行转换
 *
 * @author xzzz
 * 
 */
public enum WxErrorCode {

    /** 公共 */
    BUSY                                    (   -1,"系统繁忙，请稍候再试"),
    SUCC                                    (    0,""),

    /** code登录响应码 */
    SECRET_ERROR                            (40001,"AccessToken已过期"),
    GRANT_TYPE_MASTER_CLIENT_CREDENTIAL     (40002,"请确保 grant_type 字段值为 client_credential"),
    APPID_ERROR                             (40013,"不合法的 AppID，请开发者检查 AppID 的正确性，避免异常字符，注意大小写"),


    TOKEN_EXPIRE                            (42001,"AccessToken已过期"),

    /** code登录响应码 */
    CODE_NOT_VALID                          (40029,"code 无效"),
    USER_LOGIN_LIMITING                     (45011,"频率限制，每个用户每分钟100次"),

    /** 二维码异常 */
    QRCODE_LIMITING                         (45009,"调用分钟频率受限(目前5000次/分钟)"),
    QRCODE_PAGE_NOTFOUND                    (41030,"所传page页面不存在，或者小程序没有发布"),
    QRCODE_DATA_INVALID                     (40169,"SCENE请求参数长度不合法"),

    ;

    private Integer code;
    private String msg;

    WxErrorCode(Integer code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public Integer getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }

    /**
     * 判断是否成功
     * @param code
     * @return
     */
    public static boolean isSucc (Integer code) {
        if (code == null) {
            return false;
        }
        return code.equals(SUCC.getCode());
    }

    public static boolean isError(Integer code) {
        return !isSucc(code);
    }

    public static String getMsg (Integer code) {
        for (WxErrorCode value : WxErrorCode.values()) {
            if(value.getCode().equals(code)) {
                return value.getMsg();
            }
        }
        return null;
    }
}
